package org.jeecgframework.web.system.pojo.base;

import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.persistence.*;
import javax.xml.soap.Text;
import java.sql.Blob;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.hibernate.annotations.GenericGenerator;

import org.hibernate.annotations.NotFound;
import org.hibernate.annotations.NotFoundAction;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * @author onlineGenerator
 * @version V1.0
 * @Title: Entity
 * @Description: 返件主表信息
 * @date 2018-03-07 10:26:18
 */
@Entity
@Table(name = "cbs_return_equipment", schema = "")
@SuppressWarnings("serial")
public class CbsReturnEquipmentEntity implements java.io.Serializable {
    /**
     * 主键
     */
    private String id;
    /**
     * 返件编号
     */
    @Excel(name = "返件编号")
    private String code;
    /**
     * SR编号
     */
    @Excel(name = "SR编号")
    private String srCode;
    /**
     * SO编号
     */
    @Excel(name = "SO编号")
    private String soCode;
    /**
     * 服务单编号
     */
    @Excel(name = "服务单编号")
    private String crCode;
    /**
     * 发货单编号
     */
    @Excel(name = "发货单编号")
    private String deliverCode;
    @Excel(name = "取货联系人姓名")
    private String name;
    @Excel(name = "取货联系人电话")
    private String phone;
    private TSTerritory sheng;
    private TSTerritory shi;
    @Excel(name = "地址")
    private String address;
    @Excel(name = "影院名称")
    private String cinemaName;
    /**
     * 备件申请单ID
     */
    @Excel(name = "备件申请单ID")
    private CbsEquipmentApplyEntity equipmentApplyId;

    /**
     * 返件状态
     */
    @Excel(name = "返件状态")
    private String status;
    /**
     * 取消原因
     */
    @Excel(name = "取消原因")
    private String candelDes;
    /**
     * 预计到货时间
     */
    @Excel(name = "预计取货时间")
    private String pickupTime;
    @Excel(name = "通知返件时间")
    private Date noticeReturnTime;
    /**
     * 回库时间
     */
    @Excel(name = "预计回库时间")
    private String backwarehouseTime;

    @Excel(name = "入库时间")
    private Date inwarehouseTime;
    /**
     * 物流
     */
    @Excel(name = "物流")
    private String logistics;
    /**
     * 物流单号
     */
    @Excel(name = "物流单号")
    private String logisticsCode;
    /**
     * 入库物流备注
     */
    @Excel(name = "入库物流备注")
    private String logisticsMemo;
    /**
     * 未达标原因
     */
    @Excel(name = "未达标原因")
    private String unqualified;
    /**
     * 未达标备注
     */
    @Excel(name = "未达标备注")
    private String unqualifiedMemo;
    /**
     * 创建人名称
     */
    private String createName;
    /**
     * 创建人登录名称
     */
    private String createBy;
    /**
     * 创建日期
     */
    private Date createDate;
    /**
     * 更新人名称
     */
    private String updateName;
    /**
     * 更新人登录名称
     */
    private String updateBy;
    /**
     * 更新日期
     */
    private Date updateDate;

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  主键
     */
    @Id
    @GeneratedValue(generator = "paymentableGenerator")
    @GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
    @Column(name = "ID", nullable = false, length = 36)
    public String getId() {
        return this.id;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  主键
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  返件编号
     */
    @Column(name = "CODE", nullable = true, length = 32)
    public String getCode() {
        return this.code;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  返件编号
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  SR编号
     */
    @Column(name = "SR_CODE", nullable = true, length = 32)
    public String getSrCode() {
        return this.srCode;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  SR编号
     */
    public void setSrCode(String srCode) {
        this.srCode = srCode;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  SO编号
     */
    @Column(name = "SO_CODE", nullable = true, length = 32)
    public String getSoCode() {
        return this.soCode;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  SO编号
     */
    public void setSoCode(String soCode) {
        this.soCode = soCode;
    }

    /*
    *联系人姓名
    * */
    @Column(name = "NAME", nullable = true, length = 32)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    /*
     *联系人电话
     * */
    @Column(name = "PHONE", nullable = true, length = 32)
    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
    /*
     *地址
     * */
    @Column(name = "ADDRESS", nullable = true, length = 200)
    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
    /*
     *影院名称
     * */
    @Column(name = "CINEMA_NAME", nullable = true, length = 200)
    public String getCinemaName() {
        return cinemaName;
    }

    public void setCinemaName(String cinemaName) {
        this.cinemaName = cinemaName;
    }
    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  服务单编号
     */
    @Column(name = "CR_CODE", nullable = true, length = 32)
    public String getCrCode() {
        return this.crCode;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  服务单编号
     */
    public void setCrCode(String crCode) {
        this.crCode = crCode;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  发货单编号
     */
    @Column(name = "DELIVER_CODE", nullable = true, length = 32)
    public String getDeliverCode() {
        return this.deliverCode;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  发货单编号
     */
    public void setDeliverCode(String deliverCode) {
        this.deliverCode = deliverCode;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件申请单ID
     */
    @JsonIgnore
    @NotFound(action = NotFoundAction.IGNORE)
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "EQUIPMENT_APPLY_ID", nullable = true)
    public CbsEquipmentApplyEntity getEquipmentApplyId() {
        return equipmentApplyId;
    }

    public void setEquipmentApplyId(CbsEquipmentApplyEntity equipmentApplyId) {
        this.equipmentApplyId = equipmentApplyId;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  返件状态
     */
    @Column(name = "STATUS", nullable = true, length = 32)
    public String getStatus() {
        return this.status;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  返件状态
     */
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  取消原因
     */
    @Column(name = "CANDEL_DES", nullable = true, length = 32)
    public String getCandelDes() {
        return this.candelDes;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  取消原因
     */
    public void setCandelDes(String candelDes) {
        this.candelDes = candelDes;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  预计到货时间
     */
    @Column(name = "PICKUP_TIME", nullable = true, length = 32)
    public String getPickupTime() {
        return this.pickupTime;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  预计到货时间
     */
    public void setPickupTime(String pickupTime) {
        this.pickupTime = pickupTime;
    }


    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  入库时间
     */
    @Column(name = "INWAREHOUSE_TIME", nullable = true, length = 32)
    public Date getInwarehouseTime() {
        return inwarehouseTime;
    }

    public void setInwarehouseTime(Date inwarehouseTime) {
        this.inwarehouseTime = inwarehouseTime;
    }

    /*
    * 通知返件时间
    * */
    @Column(name = "NOTICERETURN_TIME", nullable = true, length = 32)
    public Date getNoticeReturnTime() {
        return noticeReturnTime;
    }

    public void setNoticeReturnTime(Date noticeReturnTime) {
        this.noticeReturnTime = noticeReturnTime;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  预计回库时间
     */
    @Column(name = "BACKWAREHOUSE_TIME", nullable = true, length = 32)
    public String getBackwarehouseTime() {
        return this.backwarehouseTime;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  回库时间
     */
    public void setBackwarehouseTime(String backwarehouseTime) {
        this.backwarehouseTime = backwarehouseTime;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  物流
     */
    @Column(name = "LOGISTICS", nullable = true, length = 32)
    public String getLogistics() {
        return logistics;
    }

    public void setLogistics(String logistics) {
        this.logistics = logistics;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  物流单号
     */
    @Column(name = "LOGISTICS_CODE", nullable = true, length = 32)
    public String getLogisticsCode() {
        return this.logisticsCode;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  物流单号
     */
    public void setLogisticsCode(String logisticsCode) {
        this.logisticsCode = logisticsCode;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  入库物流备注
     */
    @Column(name = "LOGISTICS_MEMO", nullable = true, length = 32)
    public String getLogisticsMemo() {
        return this.logisticsMemo;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  入库物流备注
     */
    public void setLogisticsMemo(String logisticsMemo) {
        this.logisticsMemo = logisticsMemo;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  未达标原因
     */
    @Column(name = "UNQUALIFIED", nullable = true, length = 32)
    public String getUnqualified() {
        return this.unqualified;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  未达标原因
     */
    public void setUnqualified(String unqualified) {
        this.unqualified = unqualified;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  未达标备注
     */
    @Column(name = "UNQUALIFIED_MEMO", nullable = true, length = 32)
    public String getUnqualifiedMemo() {
        return this.unqualifiedMemo;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  未达标备注
     */
    public void setUnqualifiedMemo(String unqualifiedMemo) {
        this.unqualifiedMemo = unqualifiedMemo;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  创建人名称
     */
    @Column(name = "CREATE_NAME", nullable = true, length = 50)
    public String getCreateName() {
        return this.createName;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  创建人名称
     */
    public void setCreateName(String createName) {
        this.createName = createName;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  创建人登录名称
     */
    @Column(name = "CREATE_BY", nullable = true, length = 50)
    public String getCreateBy() {
        return this.createBy;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  创建人登录名称
     */
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    /**
     * 方法: 取得java.util.Date
     *
     * @return: java.util.Date  创建日期
     */
    @Column(name = "CREATE_DATE", nullable = true, length = 20)
    public Date getCreateDate() {
        return this.createDate;
    }

    /**
     * 方法: 设置java.util.Date
     *
     * @param: java.util.Date  创建日期
     */
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  更新人名称
     */
    @Column(name = "UPDATE_NAME", nullable = true, length = 50)
    public String getUpdateName() {
        return this.updateName;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  更新人名称
     */
    public void setUpdateName(String updateName) {
        this.updateName = updateName;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  更新人登录名称
     */
    @Column(name = "UPDATE_BY", nullable = true, length = 50)
    public String getUpdateBy() {
        return this.updateBy;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  更新人登录名称
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * 方法: 取得java.util.Date
     *
     * @return: java.util.Date  更新日期
     */
    @Column(name = "UPDATE_DATE", nullable = true, length = 20)
    public Date getUpdateDate() {
        return this.updateDate;
    }

    /**
     * 方法: 设置java.util.Date
     *
     * @param: java.util.Date  更新日期
     */
    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }


    @JsonIgnore
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name ="SHENG", nullable = true)
    @NotFound(action = NotFoundAction.IGNORE)
    public TSTerritory getSheng() {
        return sheng;
    }

    public void setSheng(TSTerritory sheng) {
        this.sheng = sheng;
    }

    @JsonIgnore
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name ="SHI", nullable = true)
    @NotFound(action = NotFoundAction.IGNORE)
    public TSTerritory getShi() {
        return shi;
    }

    public void setShi(TSTerritory shi) {
        this.shi = shi;
    }
}
